package com.linksfield.topup.service;

import com.linksfield.topup.config.dto.ResultDataDto;
import com.linksfield.topup.entity.interfaces.comlinkmanage.create.first.request.RequestFirstPlanCreate;
import com.linksfield.topup.entity.interfaces.comlinkmanage.create.fourth.request.RequestFourthPlanCreate;
import com.linksfield.topup.entity.interfaces.comlinkmanage.create.second.request.RequestSecondPlanCreate;
import com.linksfield.topup.entity.interfaces.comlinkmanage.create.third.request.RequestThirdPlanCreate;
import com.linksfield.topup.entity.interfaces.comlinkmanage.edit.context.first.request.RequestFirstContentEdit;
import com.linksfield.topup.entity.interfaces.comlinkmanage.edit.context.fourth.request.RequestFourthPayEdit;
import com.linksfield.topup.entity.interfaces.comlinkmanage.edit.context.second.request.RequestSecondContentEdit;
import com.linksfield.topup.entity.interfaces.comlinkmanage.edit.context.third.request.RequestThirdContentEdit;
import com.linksfield.topup.entity.interfaces.comlinkmanage.edit.langtext.first.request.RequestFirstLangEdit;
import com.linksfield.topup.entity.interfaces.comlinkmanage.edit.langtext.fourth.request.RequestFourthLangEdit;
import com.linksfield.topup.entity.interfaces.comlinkmanage.edit.langtext.second.request.RequestSecondLangEdit;
import com.linksfield.topup.entity.interfaces.comlinkmanage.edit.langtext.third.request.RequestThirdLangEdit;
import com.linksfield.topup.entity.interfaces.comlinkmanage.langlist.request.RequestLangList;
import com.linksfield.topup.entity.interfaces.comlinkmanage.operation.request.RequestPlanOperation;
import com.linksfield.topup.entity.interfaces.comlinkmanage.search.request.RequestContentPlanSearch;
import com.linksfield.topup.entity.interfaces.comlinkmanage.view.request.RequestContentPlanView;
import org.springframework.web.multipart.MultipartFile;

/**
 * 企业内容配置业务逻辑处理接口
 *
 * @author: lm
 * @date: 2019-12-09 15:40
 */
public interface PartnerConfigService {
    /***
     * 根据条件分页查询企业的H5内容服务方案
     * @param request
     * @param token
     * @return
     */
    ResultDataDto contentPlanSearch(RequestContentPlanSearch request, String token);

    /***
     * 新建方案一：查询流量
     * @param request
     * @param token
     * @param fileListPc
     * @param fileListPh
     * @return
     */
    ResultDataDto firstPlanCreate(RequestFirstPlanCreate request, MultipartFile fileListPc, MultipartFile fileListPh, String token);

    /***
     *新建方案二：联系商家
     * @param request
     * @param token
     * @param fileListPc
     * @param fileListPh
     * @return
     */
    ResultDataDto secondPlanCreate(RequestSecondPlanCreate request, MultipartFile fileListPc, MultipartFile fileListPh, String token);

    /***
     *新建方案三：跳转商家
     * @param request
     * @param token
     * @param fileListPc
     * @param fileListPh
     * @return
     */
    ResultDataDto thirdPlanCreate(RequestThirdPlanCreate request, MultipartFile fileListPc, MultipartFile fileListPh, String token);

    /***
     *新建方案四：直接订购
     * @param request
     * @param token
     * @param fileListPc
     * @param fileListPh
     * @return
     */
    ResultDataDto fourthPlanCreate(RequestFourthPlanCreate request, MultipartFile fileListPc, MultipartFile fileListPh, String token);

    /***
     *H5功能管理：查看：方案一
     * @param request
     * @param token
     * @return
     */
    ResultDataDto firstPlanView(RequestContentPlanView request, String token);

    /***
     *H5功能管理：查看：方案二
     * @param request
     * @param token
     * @return
     */
    ResultDataDto secondPlanView(RequestContentPlanView request, String token);

    /***
     *H5功能管理：查看：方案三
     * @param request
     * @param token
     * @return
     */
    ResultDataDto thirdPlanView(RequestContentPlanView request, String token);

    /***
     *H5功能管理：查看：方案四
     * @param request
     * @param token
     * @return
     */
    ResultDataDto fourthPlanView(RequestContentPlanView request, String token);

    /***
     * H5功能管理：所有语种服务列表
     * @param request
     * @param token
     * @return
     */
    ResultDataDto langList(RequestLangList request, String token);

    /**
     * 方案一：语言文本配置编辑：
     * 语言选择之后不允许编辑 ：优先级和欢迎语可以编辑
     *
     * @param request
     * @param token
     * @return
     */
    ResultDataDto firstLangEdit(RequestFirstLangEdit request, String token);

    /***
     * 方案一：内容文本配置编辑：
     * 跳转URL地址，显示内容 两项可以编辑
     * @param request
     * @param token
     * @param
     * @return
     */
    ResultDataDto firstContentEdit(RequestFirstContentEdit request, String token, MultipartFile fileListPc, MultipartFile fileListPh);

    /***
     * 所有方案配置中背景图片编辑：
     * 不管之前新建的时候有没有，这边只用判断file是不是传了文件
     * @param request
     * @param token
     * @param fileListPc
     * @param fileListPh
     * @return
     */
    ResultDataDto secondContentEdit(RequestSecondContentEdit request, String token, MultipartFile fileListPc, MultipartFile fileListPh);

    /***
     * 方案二：语言文本配置编辑：
     * 语言选择之后不允许编辑 ：优先级和欢迎语和弹窗内容可以编辑
     * @param request
     * @param token
     * @return
     */
    ResultDataDto secondLangEdit(RequestSecondLangEdit request, String token);

    /***
     *方案三：语言文本配置编辑：
     * 语言选择之后不允许编辑 ：优先级和欢迎语可以编辑
     * @param request
     * @param token
     * @return
     */
    ResultDataDto thirdLangEdit(RequestThirdLangEdit request, String token);

    /***
     * 方案一：内容文本配置编辑：
     * 跳转URL地址 可以编辑
     * @param request
     * @param token
     * @param fileListPc
     * @param fileListPh
     * @return
     */
    ResultDataDto thirdContentEdit(RequestThirdContentEdit request, String token, MultipartFile fileListPc, MultipartFile fileListPh);

    /***
     *方案四：语言文本配置编辑：
     * 语言选择之后不允许编辑 ：优先级和欢迎语可以编辑
     * @param request
     * @param token
     * @return
     */
    ResultDataDto fourthLangEdit(RequestFourthLangEdit request, String token);

    /***
     *方案四：支付配置文本编辑：
     * 有勾选才有值
     *
     * @param request
     * @param token
     * @param fileListPc
     * @param fileListPh
     * @return
     */
    ResultDataDto fourthContentEdit(RequestFourthPayEdit request, String token, MultipartFile fileListPc, MultipartFile fileListPh);

    /***
     *H5功能管理：方案启用
     * @param request
     * @param token
     * @return
     */
    ResultDataDto contentPlanOpen(RequestPlanOperation request, String token);

    /***
     * H5功能管理：方案停用
     * @param request
     * @param token
     * @return
     */
    ResultDataDto contentPlanStop(RequestPlanOperation request, String token);
}
